#include<stdbool.h>
typedef int data_t;
#define N 128

/*
 *
//方式一：
struct sqlist_t {
	data_t data[N];
	int last;
}
 
//原先的struct sqlist_t L; 可简化为  sqlist L;
typedef struct sqlist_t sqlist;
//原先的struct sqlist_t * sqlink 可简化为 sqlink p;
typedef struct sqlist_t * sqlink;
*/

//方式二定义：简洁
typedef struct {
	data_t data[N];
	int last;
} sqlist, *sqlink;

//创建一个顺序表
sqlink list_create();
//重置一个顺序表
void list_clear(sqlink l);
//释放顺序表的所有内存
void list_free(sqlink l);
//顺序表是否为空
bool list_empty(sqlink l);
//顺序表的长度是多少
int list_length(sqlink l);
//给一个值，定位该值在顺序表中的位置
int list_locate(sqlink l, data_t value);
//往顺序表的指定位置插入某个值
bool list_insert(sqlink l, data_t value, int pos);
//删除顺序表里指定位置的值
bool list_delete(sqlink l, int pos);
//合并两个顺序表，L2不改变，L1新增放入L2里L1没有的值
void list_merge(sqlink l1, sqlink l2);
//删除顺序表里重复的元素
void list_purge(sqlink l);
//打印顺序表的信息
void list_show(sqlink l);


